草庐IT

MongoDB 分片键

全部标签

分片并不意味着分布式

Sharding(分片)是一种将数据和负载分布到多个独立的数据库实例的技术。这种方法通过将原始数据集分割为分片来利用水平可扩展性,然后将这些分片分布到多个数据库实例中。1*yg3PV8O2RO4YegyiYeiItA.png但是,尽管"分布"一词出现在分片的定义中,但分片数据库并不是分布式数据库。分片解决方案每个分片解决方案在其架构中都有一个关键组件。该组件可以有各种名称,包括协调器、路由器或导演:1*kp39_8mQ0E9bIO0Lw3PGFw.png协调器是唯一一个知道数据分布的组件。它将客户端请求映射到特定的分片,然后转发到相应的数据库实例。这就是为什么客户端必须始终通过协调器路由其请求

mongoDB命令行交互

命令行交互命令行交互一般是学习数据库的第一步,不过这些命令在后续用的比较少,了解即可。角色命令创建角色useadmindb.createUser({"user":"root","pwd":passwordPrompt(),"roles":[{role:"role",db:""}|"root"]})校验用户db.auth("user",passwordPrompt())数据库命令显示所有的数据库showdbs切换到指定的数据库,如果数据库不存在会自动创建数据库use数据库名显示当前所在的数据库db删除当前数据库use库名db.dropDatabase()集合命令创建集合db.createColl

vue分片上传视频并转换为m3u8文件并播放

开发环境:基于若依开源框架的前后端分离版本的实践,后端java的springboot,前端若依的vue2,做一个分片上传视频并分段播放的功能,因为是小项目,并没有专门准备文件服务器和CDN服务,后端也是套用的若依的上传功能实现思路:前端根据视频文件计算出文件md5值前端按照指定大小截取视频,执行分片上传(可优化,先使用文件MD5检查文件是否已上传)后端实现接收分片的接口,当已上传分片数等于总分片数时执行合并分片,得到原视频文件后端使用ffmpeg按照时间进行视频分割,切割时间根据视频清晰度不同而不同,得到m3u8文件和ts文件列表后端保存视频信息和文件实际保存地址,并提供查询接口前端使用流播放

详解MongoDB 分片策略

MongoDB分片策略MongoDB分片功能可以在多个服务器上分散存储数据集,实现水平扩展。本文档将介绍MongoDB的分片策略以及如何设置分片环境。目录分片概述分片结构分片策略部署分片集群分片原理及其使用场景分片键选择与分片策略优化分片数据库的操作和管理1.分片概述分片是将一个数据集划分为多个部分(分片)并分布在不同服务器上,通过将数据分布在多个服务器上的策略,以实现水平扩展。分片解决了数据量大、单个节点无法承载的问题。在分片架构中,数据被分成多个片段(shard),每个片段存储在一个独立的服务器或服务器集群上。通过将数据分布在多个服务器上,可以在多个节点(分片)上分散读写负载,提供更大规模

MongoDB 备份与恢复

1.1MongoDB的常用命令mongoexport/mongoimportmongodump/mongorestore    有以上两组命令在备份与恢复中进行使用。1.1.1导出工具mongoexportMongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。  该命令的参数如下:参数参数说明-h指明数据库宿主机的IP-u指明数据库的用户名-p指明数据库的密码-d指明数据库的名字-c指明collection的名字-f指明要导出那些列-o指明到要导出的文件名-q指明导出数据的过滤

MongoDB介绍

一、简介1.1MongodbMongoDb是一个基于分布式文件存储的数据库,官方地址https://www.mongodb.com/1.2数据库数据库(DataBase)是按照数据结构来组织、存储和管理数据的应用程序。作用:数据库的主要作用就是管理数据,对数据进行增(c)、删(d)、改(u)、查(r)。核心概念:数据库(database)数据库是一个数据仓库,数据库服务下可以创建很多数据库,数据库中可以存放很多集合。集合(collection)集合类似于JS中的数组,在集合中可以存放很多文档。文档(document)文档是数据库中的最小单位,类似于JS中的对象。一般情况下:一个项目使用一个数据

TCP/IP协议(分片与分段)的介绍

TCP/IP协议:(分片与分段)在传输层TCP分段在网络层分片如果只有分片,数据处理时,在传输层tcp分片(数据加个报文头部),然后在网络层ip分片,如果数据遗失,需要传输层重传整个报文,太占资源所以直接在传输层一步到位,采用分段的方法,利用PMUT得出MSS,MSS(MSS=MTU-TCP报文头部-IP报文头部)分段,数据在网络层就不需要在分片了。确认序列号是y+data大小最大传输单元(MaximumTransmissionUnit,MTU)MUT:IP协议是用于传输数据包的协议,作为网络层协议,它能提供数据的路由和寻址功能,让数据通过网络到达目的地。不同设备之间传输数据前,需要先确定一个

使用 Docker 部署高可用 MongoDB 分片集群

使用Docker部署MongoDB集群Mongodb集群搭建mongodb集群搭建的方式有三种:主从备份(Master-Slave)模式,或者叫主从复制模式。副本集(ReplicaSet)模式。分片(Sharding)模式。其中,第一种方式基本没什么意义,官方也不推荐这种方式搭建。另外两种分别就是副本集和分片的方式。今天介绍副本集的方式搭建mongodb高可用集群简介以及概述首先我们先来了解一下Mongo集群的概念,Mongo集群有3个主要组件ConfigServer:在集群中扮演存储整个集群的配置信息,负责配置存储,如果需要高可用的ConfigServer那么需要3个节点。Shard:分片,

mongodb数据同步到hive

背景用户需求:需要将mongodb的数据同步到hive表,共2亿+条数据,总数据量约30G查阅一些博客后,大致同步方法有以下几种手动+离线对于比较小的数据,可以先通过mongoexport将数据导出到本地json文件,再将json直接上传到hdfs,创建hive表关联到这个文件即可这种方式非常简单直接,但需要两次读取到写入的过程,而且如果mongodb中的数据很大,需要先导到本地的方式将会导致本地磁盘占用升高,不是很适合参考:Mongoexport同步数据到Hive工具+离线通过datax/seatunnel之类的数据同步服务,数据在内存中完成同步datax-mongodbreaderdata

MongoDB基础知识~

引入MongoDB:在面对高并发,高效率存储和访问,高扩展性和高可用性等的需求下,我们之前所学习过的关系型数据库(MySql,sqlserver…)显得有点力不从心,而这些需求在我们的生活中也是随处可见的,例如在社交中,使用它存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,地点等功能。在游戏中,使用它存储游戏用户信息,用户的装备,积分等直接以内嵌文档的形式存储,方便查询,高效率存储和访问。还有我们熟悉的物流,使用它存储订单信息,订单状态在运送过程中会不断的更新,以内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来等等。这些场景中,数据操作都有共同的特点,数据量大,